In recent years wireless devices have evolved from basic mobile phones providing simple voice and texting functionality into powerful mobile computing devices, also referred to herein as mobile devices or just devices, such as smart phones, tablets or phablets. These mobile devices provide a wide range of powerful software applications in different areas including communications, internet, entertainment, banking, and personal fitness.
Modern mobile computing devices come equipped with highly evolved mobile operating systems (OS) such as the ANDROID OS currently developed by GOOGLE, the IPHONE OS (IOS) developed by APPLE, as well as many others. The producers of mobile operating systems and mobile devices provide low cost or free development chains along with thorough documentation making it easy for nearly anyone to develop and distribute high quality software application to mobile devices worldwide.
These mobile devices also come equipped with various interfaces and sensors, such as radio transceivers, global positioning system interfaces, accelerometers, and cameras that not only provide a broad range of functionality, but also allow software applications running on the mobile device to gather information about a user's activities. As a result of the proliferation of available software applications and the intelligence being built into these software applications, people are spending greater amounts of time using and integrating their mobile devices into their daily lives. Because of this increasing time and reliance on mobile devices, it is believed by many that the future of mobile computing lies in the ability of mobile software to be smarter and more intelligent and to provide the user with a personalized service tailored to their activities, tasks, and needs.
A current trend in mobile software development is to improve the user experience by adding activity awareness in applications. Activity awareness refers to the ability of an application to monitor user activities. These activities include both physical activities such as walking or driving, as well as activities done on the mobile device, referred to herein as virtual activities. Virtual activities can include, but are not limited to reading, email or texting.
Activity awareness has inspired novel approaches toward service and application development spawning new solutions in surveillance, emergency response, and military fields. Mobile software that recognizes human activities opens the door to a world of healthcare applications such as fitness monitoring, eldercare support, long-term preventive and chronic care, and cognitive assistance. For example personal fitness applications use real-time activity information to encourage users to perform sports activities, or to track workouts.
An important aspect of activity awareness in mobile applications is the ability to classify activities a user performs in the mobile environment. Useful classification requires a high level of awareness of mobile user activities and a deeper knowledge about the user interaction with software applications running within the mobile environment. Monitoring activities at the application level can include analyzing usage of one particular software application or tracking the most visited area in a user interface (UI) of an application. However, merely analyzing usage or tracking the most visited areas is not suitable for capturing the broad usage information necessary to provide deeper awareness of user behavior and virtual activities that is necessary to provide a truly personalized mobile computing environment. Further, merely capturing activities at the application level cannot provide the type of structured data necessary to clearly describe the actions of a user, the data in use, and the source or target application, or software component.
Recognition and classification of a mobile user's activities is of interest to a wide range of disciplines and can be grouped into two basic categories. End user activity recognition focusses on detecting the end user's virtual or physical activities. Activity-based social networking focusses on detecting and analyzing a user's interests and preferences based on analyzing their social networking activity. End user applications are available that detect the user's activities, however, the type of information these applications can collect is limited to information such as the most used applications, lists of installed/downloaded applications, or understanding the users most frequent communications via email, text messaging, and phone calls. Because of the limited amount of information obtained by these end user applications, they cannot provide a concrete detection of the user's virtual activities.
For example, an end user application, such as an email application developed to run on the ANDROID OS, brings together various items like to-do lists, received and sent emails, and email attachments into a single contextual inbox. The contextual inbox is designed to be a well-organized email inbox that organizes the listed emails based on the context of the email subject, body, and attachments. This enables users to organize emails based on subject or contextual attachments and provides for the creation of smart folders based on search results. Operating system providers are also beginning to provide analytics capabilities in software development kits (SDK) allowing software developers to easily build activity awareness and other intelligence into their applications. However, these application level SDKs require that the activity awareness be built into every application and cannot be retrofit into existing applications without redesign at the source code level. Also, without close coordination among application developers, who may be from different companies and geographic locations, the information gathered pertains to only the individual applications and does not allow monitoring of inter application activity patterns and dependencies.
Thus, there is a need for improved apparatus and methods for enabling activity awareness in mobile computing devices.